home *** CD-ROM | disk | FTP | other *** search
/ Amiga Format CD 51 / Amiga Format CD51 (2000-03-10)(Future Publishing)(GB)[!][issue 2000-04].iso / -in_the_mag- / banging_the_metal / qdos / qdos4amiga3.lha / TAS_readme < prev    next >
Text File  |  1998-02-24  |  3KB  |  93 lines

  1. Short:    patch over TAS instructions with Amiga-friendly code
  2. Author:   Mark J Swift
  3. Version:  1.15
  4. Uploader: msw@blackpool.ac.uk
  5.  
  6. Removes TAS instructions from binaries for Amiga compatibility.
  7.  
  8.  
  9. ARCHIVE CONTENTS
  10.  
  11.  NO_TAS_bas       - patcher to remove TAS instructions
  12.  NO_TAS_task      - as above but TURBO compiled
  13.  RESTORE_TAS_bas  - patcher to restore TAS instructions
  14.  RESTORE_TAS_task - as above but TURBO compiled
  15.  TAS_readme       - this file
  16.  
  17.  
  18. WHY IS IT NECESSARY?
  19.  
  20. Amiga hardware does not allow the CPU two contiguous bus cycles,
  21. so any read/modify/write cycle is dammed to fail. As a result,
  22. the TAS instruction doesn't work and can even mess up the next
  23. instruction fetch, causing privilege violations and illegal
  24. instructions
  25.  
  26.  
  27. THE PATCHER PROGRAMS
  28.  
  29. * NO_TAS *
  30.  
  31. In recognised TURBO'ed and QLIB'ed tasks, this program replaces
  32. TAS with equivalent QL-compatible code. If the code is not
  33. recognised, TAS is replaced by a Line-A instruction (which is
  34. programmed to emulate TAS but is not QL-compatible) or by extending
  35. the code.
  36.  
  37. FIXES FOR QLIBERATOR
  38.  
  39. The Q_Liberator runtime libraries contain a single TAS instruction
  40. TAS $8F(A6) in v3.22 and TAS $8F(A4) in the the budget compiler.
  41. As a result any program compiled to include libraries will also
  42. contain this instruction.
  43.  
  44. NO_TAS automatically recognises QLIB'ed tasks, removes the TAS
  45. instruction and substitutes equivalent code that is compatible
  46. with both a 'real' QL and Amiga-QDOS.
  47.  
  48. FIXES FOR TURBO COMPILER
  49.  
  50. The TURBO compiler package contains a single TAS $8F(A6) in
  51. PARSER_task and two TAS instructions ( TAS $8F(a6) and
  52. TAS $17(a2) ) in CODEGEN_task. Any program compiled with TURBO
  53. may also contain these instructions.
  54.  
  55. NO_TAS automatically recognises TURBO'ed tasks, removes the TAS
  56. instructions and substitutes equivalent code that is compatible
  57. with both a 'real' QL and Amiga-QDOS.
  58.  
  59. FIXES FOR NON QLIB/TURBO CODE
  60.  
  61. If the file is not recognisable as either QLIB or TURBO code,
  62. NO_TAS will produce a disassembly for every TAS found and will
  63. ask you whether or not to replace the instruction. The program
  64. may however, display TAS instructions where none are present.
  65. A good rule-of-thumb is that true CODE will be surrounded by
  66. other machine code instructions, whereas DATA will be liberally
  67. sprinkled with DC.Ws
  68.  
  69. If the file is less than 32K, NO_TAS will replace TAS instructions
  70. with a BSR to code that is tagged onto the end of the file. The
  71. result is code that is compatible with both Amiga-QDOS and a 'real'
  72. QL.
  73.  
  74. If the file is bigger than 32K, TAS instructions are replaced
  75. by a Line-A instruction (which is programmed to emulate TAS).
  76. Line-A code is INCOMPATIBLE with a 'real' QL. Code modified in
  77. this way will cause a total system crash if run on a real QL
  78.  
  79.  
  80. * RESTORE_TAS *
  81.  
  82. Use this program to 'put-back' TAS instructions into programs
  83. that have been altered by NO_TAS.
  84.  
  85.  
  86. CONTACT
  87.  
  88.   post: MARK J SWIFT          e-mail: msw@blackpool.ac.uk
  89.         175 CHURCH STREET
  90.         BLACKPOOL
  91.         LANCS
  92.         FY1 3NX
  93.